home *** CD-ROM | disk | FTP | other *** search
-
- Subject: re : Best FPS for playable BM
-
-
- >> I was wondering what everyones perception of the minimum frame rate
- >> to make the game playable.
-
- Considering how much the Falcon is having to do each frame, I doubt we are
- going to have a great deal of choice what the framerate is going to be. As
- long as running it's as fast as the Falcon can cope with, all we can do is
- pick a window size / quality setting to suit our preferences. We are
- certainly not going to be able to increase the framerate without removing
- big chunks of code for things like shading effects and texture mapping.
-
-
- Now that the shading effects for floors and walls is working, it's
- unlikely to get much slower (if any), since all of the main drawing
- routines are practically finished (This is v1.9, which I will upload very
- soon).
-
-
- v1.9 _did_ get a _lot_ slower than v1.7 / v1.8, but I have worked hard to
- correct this and it's now quite close to the speed of v1.7. It now uses the
- full PC-Doom method for lighting / shading on walls & floors which looks a
- lot better. Unfortunately, it's doing a hell of a lot more processing work
- now for each pixel drawn.
-
-
- The _latest_ situation with v1.9 is that it is _sometimes_ slower than
- v1.7, and it's _sometimes_ faster - especially with a smaller window. I had
- to do a lot of optimising and reprogramming of the texturemapping to get
- the speed back up, but the new shading system looks a lot better and I
- think it was worthwhile. Removing all shading & lighting at this point
- would probably make BM very fast indeed - maybe playable at 320x200!
-
-
- > IMO, the minimum frame speed is 7 FPS. But it's not very fun to play,
-
- It's only 7FPS when you attempt to play it fullscreen using the top
- quality setting, which I suggested very near the start to be quite an
- ambitious target. I expect unaccelerated Falcons to depend on either low
- quality settings or a smaller game window or both. 320x200 and similarly
- large windows are only going to be useful with accelerated machines, and
- even then it will depend on the effectiveness accelerator.
-
- > and perhaps there will be some problems to shoot targets with such a
- > low frame speed... Now, the minimum FUN speed is about 13 FPS. At 15,
- > it's really ok, But
-
- In which case (for that particular machine) the best solution is to shrink
- the game-window until you reach the 13fps you wish to achieve. I simply
- can't make the program any faster without hacking bits out.
-
-
- If I have time, I will implement options to disable depth-cueing and all
- lighting effects, but that would mean 3 different DSP drivers, as it's too
- complicated to make these things switchable in one driver. The advantages
- of disabling depth-cueing are not great, but they might swing the balance
- on some machines. Disabling _all_ lighting effects might as much as double
- the framerate, but will look quite grim. The French Doom project currently
- uses no lighting effects so this is a good reference point for those
- interested - some textures & objects become hard to discern as distance
- produces no additional visual cues. The speed might make it a worthwhile
- modification...
-
-
- > I think it also depends on the speed you're moving in the game ? I mean
- > that if
- > you're moving at 100 miles/hour, a 15 FPS refresh rate won't be
- > sufficient...
- > But for a normal player, it will be good enough :-)
-
- The movement of objects in the game will be scaled using interrupt timers,
- or by placing the kinetics module on a slow interrupt itself - or even by
- forcing the mainloop to complete every 1/35 second and only drawing as much
- of the screen each pass as there is time to deal with. This means that the
- game actually plays at the same rate regardless, but the screen is only
- updated as-and-when there is time.
-
-
- Movement scaling using interrupts is the easiest way to do this, and using
- the mouse in BM as opposed to the keys will give a good idea of what to
- expect when the keys are done the same way.
-
-
- > I haven't made a real test yet, but I saw quite a big difference,
- > 'playing' BM with or without my accelerator board, though it only
- > boosts the CPU to 32 Mhz. I think the difference's about 3 FPS... Does
-
- That sounds about right - or at least it doesn't sound _wrong_ anyway...
-
- > BM make a total use
- > of the DSP for the rendering, in its current state ? I think not, if a
- > CPU-only
- > accelerator board increases the FPS rate. :-|
-
- I don't know what you mean by 'total use of the DSP', but what I think you
- are asking is 'exclusive use of the DSP' - to which the answer is no.
- However, the DSP is still used to the full at rendering time.
-
-
- The DSP is currently doing 90% of the _work_ involved in the texture
- mapping, or in other words - of all the jobs needing done, the DSP does the
- largest share by far.
-
-
- Since DSPs in general (by their very nature) are separate processors with
- separate memory and no direct access to video or the CPU's bus, the
- Falcon's DSP is completely unable to draw anything to the screen without
- the CPU's help. At the end of the day, letting the CPU do all of the actual
- drawing is actually much quicker than getting the CPU to help the DSP. As I
- said, the DSP can't do it on it's own for engineering reasons.
-
-
- Now, considering the DSP is doing 90% of the _work_ involved in the
- texturemapping (calculating which pixels come from where), and the CPU is
- taking the information _supplied_ by the DSP and using it to do the
- remaining 10% of the work (take the pixels out of the texture at the
- correct place and draw them on the screen with the relevant lighting
- adjustments), then we would obviously expect the DSP to take the largest
- portion of the total time - and speeding up the CPU would have little
- effect...
-
-
- The reason this _doesn't_ happen as expected is that the DSP is _many_
- _many_ times faster at doing it's much larger job than the CPU is at doing
- it's much smaller job. In addition to this, the DSP is doing it's job
- _while_ the CPU is doing it's _last_ job - they work in parallel, and
- absorb a large quantity of the time from each other's work.
-
-
- Put simply, you can't estimate with _any_ accuracy how much BM uses which
- chips to do what, simply because of how many speed-altering factors are
- involved.
-
-
- Here is a list of things that affect the speed of BM on the Falcon in ways
- not directly attributed or scaled according to clock-rate :-
-
-
- Instruction cache
- Data cache
- CPU bus / CPU cache concurrency
- DSP host port latency
- DSP 8-bit host port / multiple bus waitstates
- DSP / CPU parallelism
- Very large DSP / CPU speed difference
- CPU reliance on main bus
- DSP non-reliance on main bus
- Bus arbitration difference between RGB / VGA
- Possible 16-bit FastRam
- Possible 32-bit FastRam
-
- So if you mix this lot up, the result is that any estimates on speed or
- efficiency are miles off, and very probably wrong. I even get my estimates
- wrong due to this stuff and I'm supposed to know what's going on in there
- more than anyone else!
-
-
- :)
-
- I have heard at least one person ask if BM takes advantage of FastRam
- properly, as it didn't seem to make a fantastic difference. The reason is
- not that FastRam _isn't_ faster, or _isn't_ supported - it's because I
- wrote the code to run _faster_ on a normal Falcon than it normally would
- -by taking advantage of instruction interleaving, which means each memory
- reference can take place simultaneouly alongside several cached CPU
- instructions if _great_ care is taken. This is why I was so emphatic (at
- the start of the project) that the code must operate out of the cache as
- much as possible, even at the expense of increasing the amount of
- processing - because if done correctly, you can almost make Falcon ram as
- fast as FastRam. It is really fiddly and annoying to write - but as you can
- see, something that looks like you are not supporting hardware properly can
- turn out to be the exact opposite!
-
-
- However, your comments were sensible enough when applied to standard
- Falcon software - it's just that this particular program is stupidly
- complicated in the speed dipartment.
-
-
- :)
-
- Anyway, I'll upload v1.9alpha tonight if I can...
-
- Bye!
-
- Doug.
-
- ┌───────────────────────────────────────────────────────────────────────┐
- | Black Scorpion Software / Falcon040 ~ 4MbSRam ~ 16MbFRam ~ Expose ~:) |
- ├───────────────────────────────────────────────────────────────────────┤
- | Doug Little ~ Neil Stewart ~ Dave Murphy ~ Nick Hesketh ~ Dave Encill |
- └───────────────────────────────────────────────────────────────────────┘
-
- --
-
-
-